/*
 * @Description:enum 枚举， 默认 0 开始，可设置索引为指定数字
 * @Author: dh
 * @Date: 2021-09-24 16:42:16
 * @LastEditors: dh
 * @LastEditTime: 2024-05-14 15:28:04
 */

// TODO 默认枚举会被编译时会编译成一个对象
enum Color {
	Red, // 0
	Green = 15, // 15
	Blue, // 16
}
// TODO 枚举会合并
enum Color {
	y = 666,
}
// TODO  数字值 存在反向映射
Color[16] // Blue
Color[2] // undefined

console.log(Color.Red) // 0
console.log(Color[0]) // Red
console.log(Color.Blue) // 16
console.log(Color[16]) // Blue

// TODO 加了申明方式，会编译为常量
const enum ABC {
	a, // 0
	b, // 1
	c, // 2
}
ABC.a // 0
ABC.b // 1
ABC.c // 2

// TODO 如果 值设置为字符串后，需要全部设置，否则报错
enum Direction {
	Up = 'Up',
	Down = 'Down',
	Left = 'Left',
	Right = 'Right',
}
